package com.jmu.bishe.utils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.json.JSONArray;
import org.json.JSONObject;


/**
 *<pre><b><font color="blue">JsonUtils</font></b></pre>
 *
 *<pre><b>&nbsp;--JSON数据转换类--</b></pre>
 * JDK版本：JDK1.5.0
 * @author  <b>李自立</b> 
 */
public class JsonUtils {
	
	/** 
     * 从一个JSON数组得到一个java对象集合 
     */  
    public static List getListFromJsonStr(String jsonStr){  
        List list = new ArrayList();
        try {
        	JSONArray jsonArray = new JSONArray(jsonStr);
        	for(int i=0; i<jsonArray.length(); i++){  
        		list.add(jsonArray.get(i));  
        	} 
		} catch (Exception e) {
			e.printStackTrace();
		}
        return list;  
    }
      
    /** 
     * 从json HASH表达式中获取一个map，该map支持嵌套功能 
     * jsonStr的样式：{"id" : "johncon", "name" : "小强"}
     */  
    public static Map getMapFromJsonStr(String jsonStr){
    	//System.out.println("开始进入JSON转Map的方法　");
    	Map map = new HashMap();  
    	try {
    		//System.out.println("创建JSONObject对象");
    		JSONObject jsonObj = new JSONObject(jsonStr);
    		//System.out.println("创建JSONObject对象结束");
    		for(Iterator iter = jsonObj.keys(); iter.hasNext();){  
                String key = (String)iter.next();  
                map.put(key, jsonObj.get(key));  
            }
    		//System.out.println("把数据加载到Map中结束");
		} catch (Exception e) {
			e.printStackTrace();
		}
        return map;  
    }   
    
    /** 
     * 把Map转换为JSON格式的String 
     * 如：{"id":"johncon", "name":"小强"}
     */  
    public static String getJsonStringFromMap(Map map){
		JSONObject jsObject = new JSONObject(map);
		String jsStr = jsObject.toString();
		return jsStr;
    }
}
